/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vccibernos;

import java.util.*;

/**
 *
 * @author JAVA
 */
public class FacturaCompra extends Factura{
    private float total=0;
    private Compra compra;
    private Empleado dependiente;
    private String nombre;
    private String dni;
   
    
    //Constructor: Los primeros atributos, desde "id" hasta "total", son de la clase Padre
    public FacturaCompra(String nombre,String nif,Empleado dependiente,Date fecha,Compra compra){
        super(fecha);
        this.dependiente=dependiente;
        this.compra=compra;
        this.nombre=nombre;
        this.dni=nif;
    }
    
    //Getter

    public Empleado getDependiente(){
        return dependiente;
    }
    

    public Compra getCompra(){
        return compra;
    }
    
    //Setter
    public void setCompra(Compra c){
        compra=c;
    }
    
    //Metodo to String que devuelve todos los articulos de la lista de la compra. Todos con
    //su código y el precio.
    @Override
    public String toString(){
        String s="";
        ArrayList<Articulo> lista=compra.getListaArticulos();
        for(Articulo articulo:lista){
            float precio=articulo.getTarifa().getPrecioVenta();
            String titulo=articulo.getTitulo();
            s=s+"\n Titulo: "+titulo+"\n Precio "+precio+" €. \n       --------   ";
        }
        return s;
    }

    
    
    @Override
    public void calcularTotal() {
        Iterator it=compra.getListaArticulos().iterator();
        
        while(it.hasNext())
        {
            Articulo a=(Articulo)it.next(); 
            setTotal(getTotal()+a.getTarifa().getPrecioVenta());
        }
    }
    
    
    @Override
    public void imprimirFactura(){
        System.out.println(" ---------------------");
        System.out.println(super.getVideoclub());
        System.out.println(" ");
        System.out.println("+--------------------+");
        System.out.println("|  --- COMPRADOR --- |");
        System.out.println("+--------------------+");
        System.out.println("  Nombre: "+nombre);
        System.out.println("  NIF: "+dni);
        System.out.println("+---------------------+");
        System.out.println("|  -- DEPENDIENTE --  |");
        System.out.println("+---------------------+");
        System.out.println("  Código: "+getDependiente().getId());
        System.out.println("  Nombre: "+getDependiente().getNombre());
        System.out.println("+---------------------+");
        System.out.println("| ---  ARTICULOS  --- |");
        System.out.println("+---------------------+");
        System.out.println(toString());
        calcularTotal();
        System.out.println("El total es: "+getTotal());
        System.out.println("-----------------------");

        
    }
    
    
    public void imprimirFacturaVip(){
        float totalVip;
        System.out.println(" ---------------------");
        System.out.println(super.getVideoclub());
        System.out.println(" ");
        System.out.println("+-------------------+");
        System.out.println("| ---  CLIENTE  --- |");
        System.out.println("+-------------------+");
        System.out.println("  Nombre:"+nombre);
        System.out.println("  NIF:"+dni);
        System.out.println("+---------------------+");
        System.out.println("|  -- DEPENDIENTE --  |");
        System.out.println("+---------------------+");
        System.out.println("  Código: "+getDependiente().getId());
        System.out.println("  Nombre: "+getDependiente().getNombre());
        System.out.println("+---------------------+");
        System.out.println("| ---  ARTICULOS  --- |");
        System.out.println("+---------------------+");
        System.out.println(toString());
        System.out.println("-----------------------");
        calcularTotal();
        System.out.println("El total es: "+getTotal());
        totalVip=(float) (getTotal()-(getTotal()*0.15));
        setTotal(totalVip);   
        System.out.println("+---------------------------------------------------------------------+");
        System.out.println("| (Por ser cliente VIP tienes el 15% de descuento)El total es: "+getTotal()+"   |");
        System.out.println("+---------------------------------------------------------------------+");

    }

     public void setTotal(float t) {
            this.total=t;
     }

     public float getTotal(){
         return this.total;
     }

    public String getDni() {
        return dni;
    }
    
    public void setDni(String dni) {
        this.dni = dni;
    }


    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
}
